MagLev (software)
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
Developer(s) | GemTalk Systems |
---|---|
Initial release | 2008 |
Stable release | 1.2.0 Alpha 4
/ May 17, 2013 |
Repository | |
Written in | Smalltalk, Ruby |
Operating system | Cross-platform: Solaris, AIX, Linux, Mac OS X |
Platform | GemStone/S |
Type | Ruby programming language interpreter |
License | MIT, GPL, others[1] |
Website | maglev |
MagLev is an alternative implementation of the Ruby programming language built on the GemStone/S virtual machine from GemTalk Systems. Much of Maglev was set out to be written in Ruby as much as possible, resulting in some collaboration with the Rubinius project. As of the first beta release, the project runs RubyGems 1.3.5 natively, with support for C and Smalltalk extensions. MagLev has a distinct VM architecture that allows it to share code and data between runtimes and execution cycles through a Ruby API.[2]
Architecture
[edit]Maglev runs inside an image like Smalltalk, offering transparent object persistence[3][failed verification][4] to Ruby objects and classes. Object persistence is based on ACID transactions that allow multiple running instances to see a shared object graph. Maglev uses a process-based concurrency model, mapping Ruby threads to Smalltalk Processes[5][self-published source?], which are scheduled in the VM as green threads. Using MagLev should yield performance increases when using Ruby, along with allowing Ruby processes over multiple machines to use the same objects at the same time.[6]
Installation
[edit]MagLev is installed with RVM, using the following code snippets, copied directly from the maglev github.[7]
rvm install maglev rvm use maglev
The status can be checked using
$ maglev status
Ruby compatibility
[edit]Maglev targets Ruby 1.8.7 and runs a significant number of RubySpec. It supports several C extensions including Nokogiri, JSON and bcrypt.
Gemstone/S resources
[edit]- GemStoneS 64 bit 3.1.x Documentation, July 3, 2012, retrieved July 29, 2012
References
[edit]- ^ "License agreements". raw.githubusercontent.com. Retrieved 2023-02-21.
- ^ "Distributed Ruby with the MagLev VM - igvita.com". www.igvita.com. Retrieved 21 February 2023.
- ^ "Programming Guide for GemStone/S 64 Bit Version 1" (PDF), VMware, July 2012, retrieved July 29, 2012
- ^ "MagLev – Object Persistence with Ruby and Smalltalk" (PDF), Bachelor thesis, Hasso Plattner Institute, July 1, 2013, retrieved February 22, 2014
- ^ Phoenix, Evan (October 14, 2011), "Ruby, Concurrency, and You", Engine Yard Blog, retrieved July 29, 2012
- ^ "MagLev Alpha Released: A New, Scalable Ruby Implementation". www.rubyinside.com. Retrieved 21 February 2023.
- ^ "Get Started with MagLev".
External links
[edit]- Fernandez, Obie (May 30, 2008), MagLev is Gemstone/S for Ruby, Huge News, retrieved July 29, 2012
- Taft, Darryl K. (June 6, 2008), "MagLev Rocks the Ruby House", eWeek, retrieved July 29, 2012
- Grigorik, Ilya (January 15, 2010), Distributed Ruby with the MagLev VM, retrieved July 29, 2012
- Schuster, Werner (November 15, 2011), "NoSQL OODB with Smalltalk-based Ruby VM: MagLev 1.0 Released", InfoQ, retrieved July 29, 2012